<?php

namespace app\admin\controller;

use think\Controller;
use think\Db;
use think\Session;


class Index extends Controller
{
    /**
     * 后台登录页面
     * @return \think\response\View
     */
    public function index()
    {
        return view('admin@index/login');
    }

    /**
     * 后台登录处理
     * @return \think\response\View
     */
    public function logindo()
    {
        // 获取用户输入 用户名 和 密码
        $inf = input('post.');
        // 判断inf是否为空 （用户是否填写数据）
        if (!empty($inf['au_name']) && !empty($inf['au_password'])){
            // 查询数据库 ， 是否有此用户
            $res = Db::table('admin_user')->where('au_name',$inf['au_name'])->find();

            // 判断 两个密码 是否一致
            if ($res['au_password'] == $inf['au_password']) {
                // 将用户数据存到SESSION
                Session::set('admin_res',$res);

                // 定义一个数组 从session中获取值
                $admin_res = Session::get('admin_res');

                // 查询当前登录用户 所对应的角色的 ID
                $user_role_id = Db::table('user_role')->where('u_id',$admin_res['au_id'])->select();

                // 通过角色ID 查询当前用户 所对应的权限 ID
                // 定义一个 空数组
                $user_node = array();
                for ($i=0;$i<sizeof($user_role_id);$i++){
                    $user_node[] = Db::table('role_node')->where('r_id',$user_role_id[$i]['r_id'])->select();
                }

                // 定义一个 空数组 来接收 当前用户所有的权限ID
                $user_node_id = array();
                for ($i=0;$i<sizeof($user_node);$i++){
                    for ($j=0;$j<sizeof($user_node[$i]);$j++){
                        $user_node_id[] = $user_node[$i][$j]['n_id'];
                    }
                }

                // 查询当前用户所有权限的控制器和方法
                // 定义空数组 用来接收 所有值
                $node = array();
                for ($i=0;$i<sizeof($user_node_id);$i++){
                    $node[] = Db::table('node')->where('n_id',$user_node_id[$i])->find();
                }

                // 将权限信息存入session
                Session::set('node',$node);

                // 判断此用户有无权限登录主页
                // 定义一个数组 接收 session 中权限的信息
                $node_session = Session::get('node');
                // dump($node_session);die;
                for ($i=0;$i<sizeof($node_session);$i++){
                    if ($node_session[$i]['n_controlname']=='Main' && $node_session[$i]['n_modelname']=='index'){
                        return $this->success('登录成功 ！！！ ','admin/main/index');
                    }
                }
                return $this->error('您当前没有权限登录后台。。。');
            } else {
                return $this->error('账号或密码错误！ ');
            }
        } else {
            return $this->error('请输入用户名或密码 ！ ');
        }
    }

    /**
     * 后台退出处理
     * @return \think\response\View
     */
    public function logout()
    {
        Session::delete();
        $this->redirect('admin/index/index');
    }

}
